package com.indusfo.spc.mapper;

import com.indusfo.spc.pojo.*;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @ClassName BoardMapper
 * @Description 看板对应的mapper
 * @Author louk
 * @Date 2020/1/6 8:48
 * @Version 1.0
 */
public interface BoardMapper {
    /**
     * 查询累计合格率 louk
     * @param fixedDeteId
     * @return
     */
    String queryAddUpPercentOfPass(@Param("fixedDeteId") Integer fixedDeteId);

    /**
     * 查询当天的合格率 louk
     * @param fixedDeteId
     * @return
     */
    String queryNowDayPercentOdPass(@Param("fixedDeteId") Integer fixedDeteId);

    /**
     * 查询固定检测项目的看板信息 louk
     * @return
     */
    List<FixedDeteBoardData> queryFixedDeteBoardInformation(@Param("fixedDeteId") Integer fixedDeteId,@Param("startDate") String startDate,@Param("endDate") String endDate);

    /**
     * 查询不合格记录 louk
     * @param fixedDeteId
     * @param startDate
     * @param endDate
     * @return
     */
    List<FixedDeteBoardData> queryRejectFixedDeteDetailList(@Param("fixedDeteId") Integer fixedDeteId,@Param("startDate") String startDate,@Param("endDate") String endDate);

    /**
     * 查询设备oee louk
     * @param deviceId
     * @return
     */
    DeviceOee queryDeviceOee(@Param("deviceId") Integer deviceId);
    /**
     * 查询设备能耗 louk
     * @param deviceId
     * @return
     */
    DeviceRecord queryDeviceRecord(@Param("deviceId") Integer deviceId);

    /**
     * 查询30天内的设备Oee数据 louk
     * @param deviceId
     * @return
     */
    @MapKey("createDate")
    Map<String,DeviceOee> queryDeviceOeeList(@Param("deviceId") Integer deviceId);

    /**
     * 查询30天内的设备能耗数据 louk
     * @param deviceId
     * @return
     */
    @MapKey("createDate")
    Map<String,DeviceRecord> queryDeviceRecordList(@Param("deviceId") Integer deviceId);

    /**
     * 查询设备图片 louk
     * @param deviceId
     * @return
     */
    String queryDeviceImg(@Param("deviceId") Integer deviceId);

    /**
     * 查询设备Datahis louk
     * @param deviceId
     * @return
     */
    Datahis queryDatahis(@Param("deviceId") Integer deviceId);





    /**
     * 总装线工艺数据采集看板(小时)
     * @return
     */
    List<ProcessDataPart> queryProcessDataBoardO(@Param("fixedDeteId")Integer fixedDeteId,@Param("startTime") String startTime);
    /**
     * 总装线工艺数据采集看板(7天)
     * @return
     */
    List<ProcessDataPart> queryProcessDataBoardT(@Param("fixedDeteId")Integer fixedDeteId, @Param("startTime") String startTime);
    /**
     * 总装线工艺数据采集看板(30天)
     * @return
     */
    List<ProcessDataPart> queryProcessDataBoardS(@Param("fixedDeteId")Integer fixedDeteId, @Param("startTime") String startTime);

}
